// 等待 DOM 加载完成
document.addEventListener('DOMContentLoaded', () => {
  console.log('DOM 加载完成');
  // 保存原始的文件处理函数
  const originalFileInput = Main.fileInput;
  console.log('原始 fileInput 函数保存:', !!originalFileInput);
  
  // 改写"FIND FILE"按钮功能
  const findFileLink = document.getElementById('nav-find-file-link');
  if (findFileLink) {
    console.log('找到 nav-find-file-link 元素');
    const originalOnClick = findFileLink.onclick;
    findFileLink.onclick = async function() {
      console.log('nav-find-file-link 被点击');
      if (window.electronAPI) {
        console.log('使用 Electron API');
        // 使用Electron对话框
        const result = await window.electronAPI.showOpenDialog();
        console.log('文件选择结果:', result);
        if (!result.canceled && result.filePaths.length > 0) {
          const filePath = result.filePaths[0];
          console.log('选择的文件路径:', filePath);

          // 检查文件大小
          const fileInfo = await window.electronAPI.getFileInfo(filePath);
          console.log('文件信息:', fileInfo);
          if (fileInfo.size > 10 * 1024 * 1024) {
            alert('文件大小超过10MB，无法使用本软件传输');
            return;
          }
          
          // 压缩文件
          const compressResult = await window.electronAPI.compressFile(filePath);
          console.log('压缩结果:', compressResult);
          if (compressResult.success) {
            // 这里可以进一步处理压缩后的文件
            const compressedFileData = await fetch(`file://${compressResult.path}`).then(r => r.blob());
            const fileName = filePath.split('/').pop().split('\\').pop();
            const compressedFile = new File([compressedFileData], fileName + '.zip', {
              type: 'application/zip'
            });
          
            console.log('文件已压缩完成!，原始大小: ',Main.formatFileSize(fileInfo.size),'压缩后大小:',Main.formatFileSize(compressResult.compressedSize));
            
            // 创建一个模拟的input元素来触发处理
            const dataTransfer = new DataTransfer();
            dataTransfer.items.add(compressedFile);
            const mockInput = { files: dataTransfer.files };
            
            // 调用原始的文件处理函数 - 修改参数格式以匹配期望的格式
            if (originalFileInput) {
              console.log('调用原始 fileInput 函数处理选择的文件',mockInput.files[0]);
              // 修改: 创建一个模拟的文件选择器事件对象
              originalFileInput.call(this, mockInput);

              // 文件处理完成后删除压缩文件
              if (window.electronAPI && window.electronAPI.deleteFile) {
                window.electronAPI.deleteFile(compressResult.path)
                  .then(result => {
                    if (result.success) {
                      console.log('压缩文件已删除:', compressResult.path);
                    } else {
                      console.log('删除压缩文件失败:', result.error);
                    }
                  })
                  .catch(error => {
                    console.error('删除压缩文件时出错:', error);
                  });
              }
            }
          } else {
            console.log('文件压缩失败: ' ,compressResult.error);
          }
        }
      } else {
        console.log('没有 Electron API，回退到原始行为');
        // 回退到原始行为
        if (originalOnClick) originalOnClick.call(this);
      }
    };
  }
});

// 确保Main对象存在
if (typeof Main === 'undefined') {
  window.Main = {};
}